const webpack = require('webpack');
const path = require('path');
module.exports = {
    // 基本路径
    publicPath: '/',
    /*publicPath: process.env.NODE_ENV === 'production'
        ? '/ark/'
        : '/',*/
    // 输出文件目录
    outputDir: 'ark',

    // 静态资源目录
    assetsDir: 'static',

    // 是否在开发环境下通过 eslint-loader 在每次保存时 lint 代码
    lintOnSave: process.env.NODE_ENV !== 'production',

    // 是否使用包含运行时编译器的 Vue 构建版本
    runtimeCompiler: false,

    // 生产环境的 source map
    productionSourceMap: true,

    // webpack相关配置
    configureWebpack: {
        // 自定义打包入口
        entry: './src/main.js',

        // 扩展 webpack 配置
        plugins: [
            // 添加插件
            new webpack.DefinePlugin({
                '__VUE_PROD_HYDRATION_MISMATCH_DETAILS__': JSON.stringify(false), // 或 true，根据需要
            }),
        ],
    },

    // 开发服务器配置
    devServer: {
        // 端口号
        port: 8080,
        // 启用 https
        https: false,
        hot: false,
        // 自动打开浏览器
        open: true,
        /*proxy: 'http://47.113.217.170:8999',*/
        host: '0.0.0.0',//默认是 localhost。如果你希望服务器外部可访问，指定如下 host: '0.0.0.0'，设置之后之后可以访问ip地址
        // 代理配置
        proxy: {
            '/api': {
                target: 'http://localhost:8999',
                // target: 'http://47.113.217.170:8999',
                ws: true,
                secure: false, //false为http访问，true为https访问
                changeOrigin: true, //是否跨域
                pathRewrite: {
                    '^/api': '', //重写接口
                }
            },
        },
    },
    chainWebpack: config => {
        // 移除默认的 `svg` 处理
        config.module.rules.delete('svg');

        // 添加 svg-sprite-loader 处理
        config.module
            .rule('svg-sprite')
            .test(/\.svg$/)
            .include.add(path.resolve(__dirname, 'src/assets/icons/svg')) // 只处理 icons/svg 文件夹下的 svg
            .end()
            .use('svg-sprite-loader')
            .loader('svg-sprite-loader')
            .options({
                symbolId: 'icon-[name]'
            })
            .end();
    },
    // 第三方插件配置
    pluginOptions: {
        // ...
    },
};